home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / systray / systray.frm < prev    next >
Text File  |  1999-10-10  |  3KB  |  99 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "Systray"
  5.    ClientHeight    =   495
  6.    ClientLeft      =   165
  7.    ClientTop       =   1515
  8.    ClientWidth     =   1560
  9.    Icon            =   "systray.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    ScaleHeight     =   495
  14.    ScaleWidth      =   1560
  15.    Begin VB.CommandButton Command1 
  16.       Caption         =   "Minimize to Systray"
  17.       Height          =   495
  18.       Left            =   0
  19.       TabIndex        =   0
  20.       Top             =   0
  21.       Width           =   1560
  22.    End
  23.    Begin VB.Menu mPopupSys 
  24.       Caption         =   "&SysTray"
  25.       Visible         =   0   'False
  26.       Begin VB.Menu mPopRestore 
  27.          Caption         =   "&Restore"
  28.       End
  29.       Begin VB.Menu mPopExit 
  30.          Caption         =   "&Exit"
  31.       End
  32.    End
  33. End
  34. Attribute VB_Name = "Form1"
  35. Attribute VB_GlobalNameSpace = False
  36. Attribute VB_Creatable = False
  37. Attribute VB_PredeclaredId = True
  38. Attribute VB_Exposed = False
  39. Private Sub Command1_Click()
  40. Form1.WindowState = vbMinimized
  41. Shell_NotifyIcon NIM_ADD, nid 'Adds the cion to the SysTray
  42. End Sub
  43.  
  44. Private Sub Form_Load()
  45. Me.Show 'Makes sure the form is shown
  46. With nid
  47. .cbSize = Len(nid)
  48. .hwnd = Me.hwnd
  49. .uID = vbNull
  50. .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
  51. .uCallbackMessage = WM_MOUSEMOVE
  52. .hIcon = Me.Icon 'Sets the icon to show in the SysTray
  53. .szTip = "Your ToolTip" & vbNullChar 'change the Your ToolTip to what you want to show up as the tool tip for the icon in the SysTray
  54. End With
  55. End Sub
  56.  
  57. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  58. Dim Result As Long, msg As Long 'Dims Result and msg as long for later use
  59. If Me.WindowState = 1 Then 'checks if the form is in the SysTray
  60. msg = x 'makes msg the x position of the mouse
  61. Select Case msg 'starts select block to see what the msg from the systray returns
  62. Case WM_LBUTTONUP 'check to see if the left mouse button was released
  63. Me.WindowState = vbNormal 'restores the form to normal state
  64. Result = SetForegroundWindow(Me.hwnd) 'Sets the form as a foreground window
  65. Me.Show 'Makes sure the form is shown
  66. Case WM_LBUTTONDBLCLK 'Checks to see if the left mouse button was double clicked
  67. Me.WindowState = vbNormal 'restores the form to normal state
  68. Result = SetForegroundWindow(Me.hwnd) 'Sets the form as a foreground window
  69. Me.Show 'Makes sure the form is shown
  70. Case WM_RBUTTONUP 'Checks to see if the right mouse button was released
  71. Result = SetForegroundWindow(Me.hwnd) 'Sets the form as a foreground window
  72. Me.PopupMenu Me.mPopupSys 'Pops up the menu when the right mouse button is released
  73. End Select 'Ends select block
  74. Else 'If the form isn't in the SysTray then
  75. msg = x / Screen.TwipsPerPixelX 'makes msg the position of the mouse divided by the sereen's twips per pixel on the x axies
  76. End If
  77. End Sub
  78.  
  79. Private Sub Form_Resize()
  80. If Me.WindowState = vbMinimized Then Me.Hide
  81. End Sub
  82.  
  83. Private Sub Form_Unload(Cancel As Integer)
  84. Shell_NotifyIcon NIM_DELETE, nid
  85. End Sub
  86.  
  87. Private Sub mPopExit_Click()
  88. Shell_NotifyIcon NIM_DELETE, nid
  89. Unload Me
  90. End
  91. End Sub
  92.  
  93. Private Sub mPopRestore_Click()
  94. Me.WindowState = vbNormal
  95. Result = SetForegroundWindow(Me.hwnd)
  96. Me.Show
  97. Shell_NotifyIcon NIM_DELETE, nid
  98. End Sub
  99.